home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Die Speccy' 97
/
Die Speccy' 97.iso
/
amiga_system
/
the_aminet
/
comm
/
misc
/
verteiler101.lha
/
ZPoint
/
Start_Verteiler.zprx
< prev
Wrap
Text File
|
1995-09-07
|
12KB
|
313 lines
/*
$VER: Start_Verteiler.zprx V1.01 (5.9.95) Copyright (c) Nils Goers
Verteiler Copyright (c) 1995 by Thomas Eicher
FUNKTIONSBESCHREIBUNG:
Dieses Skript wurde speziell fuer das Programm VerteilerVerwaltung,
kurz VV, zwecks Anbindung an Zodiac's Point entwickelt. Dieses
Skript dient lediglich der Auswertung- und Versendung von
Nachrichten an mehrere Empfaenger, die mittels `VV' ausgewaehlt
wurden.
BENUTZUNG:
Schreiben und versenden Sie Ihre Nachrichten wie bisher. Tragen
Sie aber anstelle aller Empfaenger, an die Sie diese Nachricht
senden moechten, lediglich einen ein. Hierbei hat es sich bewaehrt,
die eigenen Adresse oder J.Random@meine.Domain einzusetzen. Dies
hat den Zweck, falls Sie vergessen sollten die Adresse zu aendern,
damit die Nachricht nicht ungewollt in der ganzen Welt auf
wanderschaft geht.
Begeben Sie sich dann in das Spool-Brett, waehlen dort die
entsprechende Nachricht aus und starten Sie dieses ARexx-Skript.
Es wird dann das Programm `VV' gestartet, wo Sie ganz bequem Ihre
Verteilerlisten erstellen, editieren, loeschen und zum versenden
von Nachrichten bereitstellen koennen.
Start_Verteiler.zprx wertet dann zum einen die Orignalnachricht
aus, zum anderen generiert das Skript eine neue Nachricht. Diese
neue Nachricht weist natuerlich die selben Attribute vor wie die
Originalnachricht. Zusaetzlich werden dann zu der Nachricht, die
verschiedenen Empfaenger beigefuegt.
INSTALLATION:
Kopieren Sie bitte das Hauptprogramm, 'VV' in das
Tools-Verzeichnis von Zodiac's Point. Dieses ARexx-Skript gehoert
in das Rexx-Verzeichnis von Zodiac's Point.
Um das Programm nun ueber eine Funktionstaste starten zu koennen
muessen Sie folgenden Eintrag in die Datei `fkeys.zp' hinzufuegen.
F1:SYS:Rexxc/RX ZPOINT:Rexx/Start_Verteiler.zprx %s
Alternativ hierzu haben Sie aber auch die Moeglichkeit das Programm
aus dem Pulldown-Menu aufzurufen. Dazu muessen Sie lediglich einen
neuen Eintrag in die Datei `usermenus.zp' machen:
*Nachrichtenverteiler
Sys:Rexxc/RX ZPoint:Rexx/Start_Verteiler.zprx %s
Sie erreichen die Autoren wie folgt:
t.eicher@hsp.zer.de
N.Goers@Art-Line.Art-Line.de
Das Programm Verteiler, welches mit diesem Skript gestartet wird,
benoetigt die "triton.library" >=V1.2
Triton is (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de> */
/*----------------------------------------------------------------
-Ab hier koennen Sie das Skript nach Ihren Beduerfnissen anpassen-
----------------------------------------------------------------*/
/* wo befindet sich das Hauptprogramm ?? */
Verteiler.main = "source:vv/vv"
/*----------------------------------------------------------------*/
/* wo befindet sich die Database
(default: progdir:verteiler.database) */
DataBase = "progdir:verteiler.database"
/*----------------------------------------------------------------*/
/* wo ist die Datei mit den Empfaengern (Verteilerliste)? */
RCVFILE.main = "t:RCVFILE"
/*----------------------------------------------------------------*/
/* Dieser "Domain"-Eintrag in der Alias.zp Datei dient dem Skript
zur Erkennung das Sie den "Distribution-Modus" von Verteiler
nutzen moechten (siehe Anleitung!) */
Verteilerkennung = "@Verteiler"
/*----------------------------------------------------------------*/
/* zum Auslagern evtl. Daten (Binaer- und oder Textnachrichten) */
Datei.Tmp = "t:Out.tmp"
/*----------------------------------------------------------------*/
/* Erlaubte Optionen:
PERSONAL unterbindet, dass im Kopf der Nachricht vermerkt wird, wer
alles Kopien dieser Nachricht erhalten hat.
ARCHIVE Nachricht versenden und im Nachrichtenarchiv speichern.
COOKIE Cookie anhaengen (nur bei Textnachrichten).
Beispiele:
wopts = 'PERSONAL '
~Bitte beachten Sie dieses Freizeichen!
wopts = 'COOKIE ARCHIVE '
*/
wopts = ''
/*----------------------------------------------------------------*/
/* Originalnachricht wird geloeschen ??
1 = mit Sicherheitsabfrage
0 = ohne Sicherheitsabfrage */
DelImmer = 0
/*----------------------------------------------------------------*/
/* In welcher Sprache moechten Sie arbeiten ??
Moeglichkeiten: deutsch
english */
Sprache = "deutsch"
/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Bitte geben Sie hier ihre Praeferenzen ein ! *
*******************************************************************/
/*******************************************************************
* Bitte unterhalb dieser Zeile nichts mehr veraendern! *
*******************************************************************/
NL = '0a'x
None = "-NONE-"
Bezug = "BEZ"
Crypto = "CRYPT"
Diskussion = "Diskussion-in"
Empfangsbest = "EB"
PGPSignatur = "PGP-SIG"
Anf = '"'
Space = ' '
/* Hier sind die Texte in den unterschiedlichen Sprachen. Falls
Sie diese Texte in eine andere Sprache uebersetzen sollten, dann
senden Sie mir die uebersetzten Texte doch bitte zu. */
deutsch.text0 = '"Verteiler laeuft!"'
english.text0 = '"Verteiler is running!"'
deutsch.text1 = "Bitte begeben Sie sich"NL,
"in das Spool-Brett!"
english.text1 = "Please go into the Spool-Area"
deutsch.text2 = "Empfangsbestaetigungen und Kontrollnachrichten"NL,
"koennen nicht bearbeitet werden!"
english.text2 = "receive receptions and controlmessages"NL,
"can not be handled!"
deutsch.text3 = "Fehler beim Start von Verteiler!"
english.text3 = "error while opening 'Verteiler!'"
deutsch.text4 = "Sie haben abgebrochen. Die Nachricht wird"NL,
"weiterhin nur an den Originalempfaenger gesendet."
english.text4 = "You have canceled. The message will"NL,
"be send to the main receiver, only."
deutsch.text5 = "Fehler beim Speichern!"
english.text5 = "error while saving!"
deutsch.text6 = "Kann Nachricht nicht verschicken!"
english.text6 = "Couln't send message!"
deutsch.text7 = "Nachricht wurde verschickt."
english.text7 = "Message is on the way, now."
deutsch.text8 = "Soll die Ursprungsnachricht geloescht werden?"
english.text8 = "Shall I delete the original message?"
deutsch.text9 = "kodierte Nachrichten koennen z.Zt. nicht"NL,
"bearbeitet werden!"
english.text9 = "At the moment it's not possible to handle"NL,
"crypted messages!"
deutsch.text10 = "Bitte die erneute QPC-Passwortabfrage"NL,
"abbrechen, bzw. nur RETURN druecken!"
english.text10 = "Please cancel the upcoming QPC-passwortrequester",
"or simply press return, ONLY!"
OPTIONS RESULTS
/* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */
PARSE ARG zpPort
IF zpPort == "" THEN
zpPort = "ZPoint"
ADDRESS VALUE zpPort
/* ------------- Dieses Skript laeuft erst ab V37.191 ------------- */
WHICHVERSION
IF RESULT < "37.191" THEN DO
REQUESTNOTIFY "Dieses Skript benoetigt mind. die Zodiac's Point 37.191 (15.5.95)"
EXIT
END
/* --- Dieses Skript darf nur im Spool-Brett ausgefuehrt werden --- */
WHICHLEVEL
IF Result ~= "BOARD" then
DO
Text1 = VALUE(sprache||.text1); REQUESTNOTIFY Text1; EXIT
END
BOARDINFO LABEL; BOARDLABEL=Result
IF INDEX(Boardlabel,'(Spool') == 0 THEN
DO
Text1 = VALUE(sprache||.text1); REQUESTNOTIFY Text1; EXIT
END
/******************************
* hier ist das Hauptprogramm *
******************************/
_Main:
MESSAGEINFO STATUS
IF RESULT == "CTL,EB" THEN DO /* Kontrollnachricht! */
Text1 = VALUE(sprache||.text2); REQUESTNOTIFY Text1; EXIT
END
/* Ist die Nachricht kodiert worden (QPC bzw. PGP) ? */
FINDHEADER Crypto
IF RESULT ~= None THEN DO
IF RESULT == "QPC" THEN DO
Text1 = VALUE(sprache||.text10); REQUESTNOTIFY Text1
CALL _SendMails
END
Text1 = VALUE(sprache||.text9); REQUESTNOTIFY Text1; EXIT
END
_SendMails:
text1 = VALUE(sprache||.text0)
"guilock text="text1
MESSAGEINFO RECEIVER
ReceiverName=RESULT
Receiver.bak=RESULT
IF ~EXISTS(RCVFile.main||zpPort) THEN ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:'
Receiver.bak = UPPER(receiver.bak)
Verteilerkennung = UPPER(Verteilerkennung)
SELECT
WHEN LASTPOS(Verteilerkennung,Receiver.bak) ~= 0 THEN DO
Receiver=INDEX(Receivername,"@"); Receiver=LEFT(Receivername,Receiver-1)
ADDRESS COMMAND Verteiler.main 'DB='Database,
'INTO='RCVFILE.main||zpPort,
'PB='zpPort,
'FOR='Receiver
END
OTHERWISE
ADDRESS COMMAND Verteiler.main 'DB='Database,
'INTO='RCVFILE.main||zpPort,
'PB='zpPort
END
IF (RC) ~= 0 THEN DO /* Fehler beim oeffnen von Verteiler */
Text1 = VALUE(sprache||.text3); REQUESTNOTIFY Text1; EXIT
END; ELSE
IF ~EXISTS(RCVFile.main||zpPort) THEN DO
Text1 = VALUE(sprache||.text4); REQUESTNOTIFY Text1
EXIT; END
MESSAGEINFO POSITION /* an der wievielten Position befindet sich die
MailPosition=RESULT Originalnachricht ? */
/* Es wird nach Empfaenger, Betreff, Diskussion in, PGP-Signatur und
Empfangsbestaetigung gesucht. Es wird lediglich bis zum Textkoerper
durchsucht */
MESSAGEINFO FULLSUBJECT
SubjectName=RESULT
FINDHEADER Diskussion
IF RESULT ~= None THEN
wopts = wopts||Space||'FOLLOWUP '||Anf||RESULT||Anf
FINDHEADER Empfangsbest
IF RESULT ~= None THEN
wopts = wopts||Space||'CONFIRM'
FINDHEADER PGPSIGNATUR
IF RESULT ~= None THEN
wopts = wopts||Space||'PGPSIG'
FINDHEADER ALL Bezug
IF RESULT ~= None THEN
wopts = wopts||Space||'REFERENCES '||Anf||RESULT||Anf
MESSAGEINFO TYPE
IF RESULT == "BINARY" THEN wopts = wopts||space||'BINARY'
SAVEMESSAGEBODY Datei.tmp||zpPort
IF (RC) == 0 THEN
DO
Text1 = VALUE(sprache||.text5); REQUESTNOTIFY Text1
CALL _DeleteTemps
END
WRITEMESSAGE Datei.tmp||zpPort,
'RECEIVER' ReceiverName,
'SUBJECT' Anf||SubjectName||Anf,
'RCVFILE' RCVFILE.main||zpPort,
wopts
id = RESULT /* Hat das versenden geklappt ? */
IF (id = '') THEN DO /* Hups! Fehler! */
Text1 = VALUE(sprache||.text6); REQUESTNOTIFY Text1
CALL _DeleteTemps
END
ELSE /* Alles klar! */
Text1 = VALUE(sprache||.text7); REQUESTNOTIFY Text1
IF DelImmer ~= 0 THEN /* Soll nachgefragt werden? */
DO /* Soll die Nachricht geloescht werden ? */
Text1 = VALUE(sprache||.text8); REQUESTRESPONSE Text1
END
IF RC = 1 THEN /* Wenn 1, dann Nachricht loeschen! */
DO
JUMPTOMESSAGE MailPosition; DELETE ONE; DOWN
CALL _DeleteTemps
END
_DeleteTemps:
ADDRESS COMMAND 'delete' RCVFILE.main||zpPort '>NIL:'
ADDRESS COMMAND 'delete' Datei.tmp||zpPort '>NIL:'
guilock off /* Die GUI wieder freigeben! */
EXIT
/* EOS */